Webframeworkk/ASP.NET Core/Http
1. Was ist HTTP?
HTTP (Hypertext Transfer Protocol) ist das grundlegende Protokoll für die Kommunikation im Web. Es arbeitet nach dem Client-Server-Modell: Ein Client (z.B. Browser) sendet eine Anfrage, der Server antwortet mit Ressourcen oder Fehlermeldungen. HTTP ist zustandslos – jeder Request ist unabhängig.
2. HTTP-Server und Kestrel
Ein HTTP-Server verarbeitet Anfragen und sendet Antworten. Beispiele: Apache, Nginx, IIS, Kestrel (ASP.NET Core). Kestrel ist ein moderner, plattformübergreifender Webserver für ASP.NET Core.
3. Ablauf einer HTTP-Anfrage in ASP.NET Core
- Client sendet HTTP-Anfrage.
- Kestrel empfängt die Anfrage und leitet sie durch die Middleware-Pipeline.
- Middleware verarbeitet die Anfrage und gibt sie an die Anwendung weiter.
- Die Anwendung generiert eine Antwort.
- Kestrel sendet die Antwort zurück an den Client.
4. HTTP-Requests und -Responses
- Request: Enthält Methode (GET, POST, etc.), URI, Version, Header und optional einen Body.
- Response: Enthält Version, Statuscode, Header und optional einen Body.
Beispiel für eine HTTP-Response
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 137
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
5. Wichtige Statuscodes
- 200 OK: Erfolg
- 201 Created: Ressource erstellt
- 400 Bad Request: Syntaxfehler
- 401 Unauthorized: Authentifizierung nötig
- 404 Not Found: Ressource nicht gefunden
- 500 Internal Server Error: Serverfehler
6. Header und Statuscodes in ASP.NET Core setzen
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.Run(async (HttpContext context) =>
{
context.Response.Headers["Content-Type"] = "text/html";
context.Response.StatusCode = 200;
await context.Response.WriteAsync("<h1>Hello</h1><h2>World</h2>");
});
app.Run();
7. Zugriff auf Request-Informationen
app.Run(async (HttpContext context) =>
{
string path = context.Request.Path;
string method = context.Request.Method;
context.Response.Headers["Content-Type"] = "text/html";
await context.Response.WriteAsync($"<p>{path}</p><p>{method}</p>");
});
8. GET vs. POST
- GET: Daten abfragen, Parameter in der URL, idempotent, cachbar.
- POST: Daten senden, Parameter im Body, nicht idempotent, nicht cachbar.
9. Testen mit Postman
Postman ist ein Tool zum Testen von HTTP-Anfragen. Damit können Sie Ihre ASP.NET Core Endpunkte einfach testen und die Antworten analysieren.
10. Zusammenfassung
HTTP ist das Rückgrat des Webs. ASP.NET Core und Kestrel bieten eine moderne Plattform für Webanwendungen. Mit Middleware, Statuscodes und Headern können Sie flexibel auf Anfragen reagieren und Antworten gestalten.